class Solution:
    def maxTurbulenceSize(self, arr: List[int]) -> int:
        result=0
        count=0
        if len(arr)<2:
            return len(arr)
        offset=1
        while offset<len(arr) and arr[offset]==arr[offset-1]:
            offset+=1
        if offset==len(arr):
            return 1
        direction=arr[offset-1]<arr[offset]
        i=offset-1
        while i<len(arr)-1:
            if arr[i]==arr[i+1]:
                if count+1>result:
                    result=count+1
                count=0
                if i+1==len(arr)-1:
                    break
                else:
                    i+=1
                    direction=arr[i]<arr[i+1]
                continue
            if direction^(arr[i]>arr[i+1]):
                count+=1
            else:
                if count+1>result:
                    result=count+1
                count=1
            direction=arr[i]>arr[i+1]
            i+=1
        if count+1>result:
            result=count+1
        return  result            

'''
执行用时：
160 ms
, 在所有 Python3 提交中击败了
82.29%
的用户
内存消耗：
17.9 MB
, 在所有 Python3 提交中击败了
47.60%
的用户
'''